home *** CD-ROM | disk | FTP | other *** search
/ Popular Request / By Popular Request (Arsenal Computer)(SysOptics Distribution System).ISO / amiga2 / jad30amy.lha / jade / DOC-strings < prev    next >
Text File  |  1994-04-20  |  69KB  |  1,039 lines

  1. (make-buffer-name NAME)
  2. Construct a unique buffer-name from NAME. (make-buffer NAME)
  3. Return a new buffer, it's name is the result of (make-buffer-name NAME). (destory-buffer BUFFER)
  4. Throw away everything associated with buffer. All resident marks are made
  5. non-resident. (get-file-buffer NAME)
  6. Scan all buffers for one containing the file NAME. (get-buffer NAME)
  7. Scan all buffers for one whose name is NAME. (current-buffer [WINDOW])
  8. Return the buffer that WINDOW (or the current window) is displaying. (set-current-buffer BUFFER [WINDOW])
  9. Set the buffer that WINDOW (or the current window) is displaying. Returns
  10. the buffer which was being displayed before. (file-name [BUFFER])
  11. Return the name of the file being edited in BUFFER. (set-file-name BUFFER NAME)
  12. Set the name of the file being edited in BUFFER to NAME. (buffer-name [BUFFER])
  13. Return the name of BUFFER. (set-buffer-name BUFFER NAME)
  14. Set the name of BUFFER to NAME. (buffer-changes [BUFFER])
  15. Return the number of modifications to BUFFER. (buffer-modified-p [BUFFER])
  16. Returns t if the buffer has changed since it was last saved. (set-buffer-modified BUFFER STATUS)
  17. If STATUS is nil make it look as though buffer hasn't changed, else make
  18. it look as though it has. (set-buffer-special BUFFER SPECIALP)
  19. When a buffer is `special' it means that it is controlled by some Lisp code,
  20. not by the user typing into it (although this can still happen as well). This
  21. is used for things like the `*jade*' or `*Info*' buffers (in fact most of
  22. the buffers whose names are surrounded by asterisks are special).
  23.  
  24. What the `special' attribute actually does is make sure that the buffer is
  25. never truely killed (`kill-buffer' removes it from each window's `buffer-list'
  26. but doesn't detroy the actual contents) and modifications don't cause the
  27. `+' marker to appear in the status line. (buffer-special-p [BUFFER])
  28. Returns t if BUFFER is ``special''. See `set-buffer-special' for the meaning of
  29. the ``special'' attribute. (set-buffer-read-only BUFFER READ-ONLY-P)
  30. If a buffer is read-only no modification of its contents is allowed. (buffer-read-only-p [BUFFER])
  31. Returns t if BUFFER is read-only. See `set-buffer-read-only'. (file-length [BUFFER])
  32. Returns the number of lines in BUFFER. (line-length [LINE-POS] [BUFFER])
  33. Returns the length (not including newline) of the specified line, or
  34. using current cursor position if specifiers are not provided. (with-buffer BUFFER FORMS...) <SPECIAL-FORM>
  35. Temporarily switches to buffer, then executes the FORMS in it before 
  36. returning to the original buffer. (bufferp ARG)
  37. Returns t if ARG is a buffer. The number of modifications which must be made to a buffer before it
  38. is considered for auto-saving. A value of zero means that this buffer
  39. is not to be auto-saved. Number of changes the last time this buffer was saved (could be auto-save). Number of changes the last time this buffer was saved (not from auto-save). System time at last save of this buffer (could be from an auto-save). Sets the size of tab-stops for the `left-tab' and `right-tab' commands. Sets the size of the tab-stops used when loading and saving files in this
  40. buffer. Defines whether or not tab characters (ASCII 9) are used when saving files,
  41. STATUS can be one of,
  42.      nil     NO tabs are used, all spaces are left intact.
  43.      leading All *leading* spaces in each line will be optimised into
  44.          tabs.
  45.      all     All groups of spaces (except after any quotes) are changed
  46.          to tabs wherever possible. This is used to display the name of the edit-mode being used in the status
  47. line. (make-mark [POS] [BUFFER | FILE-NAME])
  48. Creates a new mark pointing to position POS either in the current file
  49. or in FILE-NAME, or BUFFER.
  50.  
  51. Note that FILE-NAME doesn't have to be a file that has been loaded, it's
  52. stored as a string, the file it points to is only opened when needed.
  53.  
  54. Unlike position objects, the position in a file that a mark points to is
  55. updated as the file changes -- it will always point to the same character
  56. (for as long as that character exists, anyway). (set-mark MARK [POS] [FILE-NAME | BUFFER])
  57. Sets the position which MARK points to POS in FILE-NAME or BUFFER. (mark-pos MARK)
  58. Returns the position that MARK points to. (note that this is the *same*
  59. object that the mark stores internally -- so don't modify it unless you're
  60. really sure you know what you're doing) (mark-file MARK)
  61. Returns the file-name or buffer that MARK points to. (mark-resident-p MARK)
  62. Returns t if the file that MARK points to is in a buffer. (markp ARG)
  63. Return t if ARG is a mark. (prompt PROMPT [STRING])
  64. Displays PROMPT and waits for the user to enter a string, which is
  65. then returned. If STRING is provided it is used as the starting value
  66. of the string. (split-line)
  67. Splits the line into two at the cursor position, if the auto-indent option
  68. is enabled the cursor will be placed at the same level of indentation as
  69. the previous line. (insert STRING [POS] [BUFFER])
  70. Inserts STRING into BUFFER at POS. (insert-rect STRING [POS] [BUFFER])
  71. Inserts STRING into BUFFER at POS treating it as a ``rectangle'' of
  72. text -- that is, each separate line in STRING (separated by newlines) is
  73. inserted at the *same* column in successive lines. (delete-area START-POS END-POS [BUFFER])
  74. Deletes from START-POS up to (but not including) END-POS. (delete-rect START-POS END-POS [BUFFER])
  75. Deletes the rectangle of text from one corner, START-POS, to the opposite
  76. corner, END-POS. (copy-area START-POS END-POS [BUFFER])
  77. Returns the string from START-POS up to END-POS. (copy-rect START-POS END-POS [BUFFER])
  78. Returns the rectangle of text marked out by START-POS and END-POS. (cut-area START-POS END-POS [BUFFER])
  79. The same as `copy-area' except that the section of text copied (START-POS to
  80. END-POS) is deleted from the file after being duplicated. (cut-rect START-POS END-POS [BUFFER])
  81. The same as `copy-rect' except that the section of text copied (START-POS
  82. to END-POS) is deleted from the file after being duplicated. (block-toggle) (block-start [POS])
  83. Always returns the position of the block-start as it is, if POS is given
  84. it is used as the new position of the start of the block. (block-end [POS])
  85. Always returns the position of the block-end as it is, if POS is given
  86. it is used as the new position of the end of the block. (block-kill)
  87. Unmarks the block. (blockp)
  88. Returns true if a block is currently marked. (translate-area START-POS END-POS TRANSLATION-TABLE [BUFFER])
  89. Applies the TRANSLATION-TABLE to the text between START-POS and END-POS.
  90. TRANSLATION-TABLE is a string, each character represents the translation
  91. for an ascii character of that characters position in the string. If the
  92. string is less than 256 chars long any undefined characters will remain
  93. unchanged. (alpha-char-p CHAR)
  94. Returns t if CHAR is an alphabetic character. (upper-case-p CHAR)
  95. Returns t if CHAR is upper case. (lower-case-p CHAR)
  96. Returns t if CHAR is lower case. (digit-char-p CHAR)
  97. Returns t if CHAR is a digit. (alphanumericp CHAR)
  98. Returns t if CHAR is alpha-numeric. (space-char-p CHAR)
  99. Returns t if CHAR is whitespace. (char-upcase CHAR)
  100. Returns the upper-case equivalent of CHAR. (char-downcase CHAR)
  101. Returns the lower-case equivalent of CHAR. (pos-line POS)
  102. Returns the line number which POS points to. (pos-col POS)
  103. Return the column number which POS points to. (set-pos-line POS LINE)
  104. Sets the line number of POS to LINE. (set-pos-col POS COL)
  105. Sets the column number of POS to COL. (posp ARG)
  106. Returns t if ARG is a position object. (cursor-pos)
  107. Returns the position of the cursor in the current window. (empty-line-p [POS] [BUFFER])
  108. Returns t if the line pointer to by POS (or the cursor) in BUFFER is
  109. empty, ie, blank or only containing spaces. (indent-pos [POS] [BUFFER])
  110. Returns the position of the first non-space character in the line pointer
  111. to by POS (or the cursor), in BUFFER. (set-indent-pos POS [BUFFER])
  112. Sets the indentation of the line pointed to by POS to the column pointed
  113. to by POS by either deleting characters from the start of the line, or
  114. inserting spaces. (clear-buffer [BUFFER])
  115. Remove all text from BUFFER, leaving just one empty line. (find-next-regexp REGEXP [POS] [BUFFER] [IGNORE-CASE-P])
  116. Scans forwards from POS (or the cursor), in BUFFER, looking for a match
  117. with REGEXP. Returns the position of the next match or nil.
  118.  
  119. When IGNORE-CASE-P is non-nil the case of matched strings are ignored. Note
  120. that character classes are still case-significant. (find-prev-regexp REGEXP [POS] [BUFFER] [IGNORE-CASE-P])
  121. Scans backwards from POS (or the cursor), in BUFFER, looking for a match
  122. with REGEXP. Returns the position of the next match or nil.
  123.  
  124. When IGNORE-CASE-P is non-nil the case of matched strings are ignored. Note
  125. that character classes are still case-significant. (find-next-string STRING [POS] [BUFFER])
  126. Scans forwards from POS (or the cursor), in BUFFER, looking for a match
  127. with STRING. Returns the position of the next match or nil. (find-prev-string STRING [POS] [BUFFER])
  128. Scans backwards from POS (or the cursor), in BUFFER, looking for a match
  129. with STRING. Returns the position of the next match or nil. (find-next-char CHAR [POS] [BUFFER])
  130. Scans forwards from POS (or the cursor), in BUFFER, looking for a match
  131. with CHAR. Returns the position of the next match or nil. (find-prev-char CHAR [POS] [BUFFER])
  132. Scans backwards from POS (or the cursor), in BUFFER, looking for a match
  133. with CHAR. Returns the position of the next match or nil. (replace-regexp REGEXP TEMPLATE [POS] [BUFFER] [IGNORE-CASE-P])
  134. If the text at POS or the cursor, matches REGEXP replace it with TEMPLATE,
  135. this is a string that can have the following escape characters,
  136.   \0, \&   whole string matched by REGEXP
  137.   \N       N'th parenthensized expression (1 <= N <= 9)
  138.  
  139. When IGNORE-CASE-P is non-nil the case of matched strings are ignored. Note
  140. that character classes are still case-significant. (replace-string ORIGINAL NEW [POS] [BUFFER])
  141. If the text at POS, or the cursor, matches ORIGINAL, replace it with the
  142. string NEW. (regexp-expand REGEXP MATCHSTR TEMPLATE [IGNORE-CASE-P])
  143. If REGEXP matches MATCHSTR then return the string made by expanding the
  144. string TEMPLATE in a similar way to in the function `replace-regexp'.
  145.  
  146. When IGNORE-CASE-P is non-nil the case of matched strings are ignored. Note
  147. that character classes are still case-significant. (regexp-match REGEXP STRING [IGNORE-CASE-P])
  148. Return t if REGEXP matches STRING.
  149.  
  150. When IGNORE-CASE-P is non-nil the case of matched strings are ignored. Note
  151. that character classes are still case-significant. (regexp-expand REGEXP TEMPLATE [POS] [BUFFER] [IGNORE-CASE-P])
  152. If REGEXP matches the line at POS in BUFFER then return the string made
  153. by expanding the string TEMPLATE in a similar way to in the function
  154. `replace-regexp' and the variables `find-last-start-pos' and
  155. `find-last-end-pos' are set to the start and end of the match.
  156.  
  157. When IGNORE-CASE-P is non-nil the case of matched strings are ignored. Note
  158. that character classes are still case-significant. (regexp-match-line REGEXP [LINE-POS] [BUFFER] [IGNORE-CASE-P])
  159. Attempts to match the regular-expression REGEXP to the line pointed to by
  160. LINE-POS and BUFFER. If the match succeeds t is returned and the variables
  161. `find-last-start-pos' and `find-last-end-pos' are set to the start and end
  162. of the match.
  163.  
  164. When IGNORE-CASE-P is non-nil the case of matched strings are ignored. Note
  165. that character classes are still case-significant. (looking-at REGEXP [POS] [BUFFER] [IGNORE-CASE-P])
  166. Returns t if REGEXP matches the text at POS. Sets the `find-last-start-pos'
  167. and `find-last-end-pos' appropriately. Only the text from POS to the end of
  168. the line is matched against. The position of the start of the last match found by any of the find-*-*
  169. functions. The position of the end of the last match found by any of the find-*-*
  170. functions. (read-buffer FILE [BUFFER])
  171. Overwrites the text in BUFFER with that from the file FILE.
  172. FILE is either a string naming the file to be opened or a Lisp file object
  173. (from `open') to be used. (write-buffer [FILE-NAME] [BUFFER])
  174. Saves the contents of BUFFER to file FILE-NAME. (write-buffer-area START-POS END-POS [FILE-NAME] [BUFFER])
  175. Writes the text between START-POS and END-POS in BUFFER to file
  176. FILE-NAME. (cd [DIRECTORY])
  177. If DIRECTORY is given set the editor's current directory to it, else
  178. return the name of the current directory. (write-file FILE-NAME STRING)
  179. Writes STRING to file FILE-NAME. (read-file FILE-NAME)
  180. Return the contents of file FILE-NAME. (read-file-from-to FILENAME OFFSET CHAR) (write-clip UNIT STRING)
  181. Writes STRING to unit UNIT of the standard clipboard. (read-clip UNIT)
  182. Returns the string which unit UNIT of the clipboard holds. A list of keymaps (ie, keylists and/or keytables). When an event occurs
  183. each keymap in the list is searched for an event binding which matches
  184. it. These bindings are installed in a keymap by the function `bind-keys'.
  185. See also `next-keymap-path'. When no event binding can be found for an event this hook is evaluated in
  186. the standard manner (see the function `eval-hook' for details). (make-keytab)
  187. Return a new key-table suitable for storing bindings in. (make-keylist)
  188. Return a new key-list suitable for storing bindings in. (bind-keys KEY-MAP { KEY-DESCRIPTION FUNCTION }...) (unbind-keys KEY-MAP KEY-DESCRIPTION...) The value of `keymap-path' to be used for the *next* keypress. This is
  189. usually used to chain together multi-key bindings. (eval FORM)
  190. Evaluates FORM and returns its value. (funcall FUNCTION ARGS...)
  191. Calls FUNCTION with arguments ARGS... and returns its result. (progn FORMS... ) <SPECIAL-FORM>
  192. Eval's each of the FORMS in order returning the value of the last
  193. one. (break)
  194. The next form to be evaluated will be done so through the Lisp debugger. (step FORM)
  195. Use the Lisp debugger to evaluate FORM. (macroexpand FORM [ENVIRONMENT])
  196. If FORM is a macro call, expand it until it isn't. If ENVIRONMENT is
  197. specified it is an alist of `(MACRO-NAME . DEFINITION)'. (get-doc-string INDEX)
  198. Returns the document-string number INDEX. (add-doc-string STRING)
  199. Appends STRING to the end of the doc-file and returns the index position of
  200. it's first character (a number). When an error is signalled this variable controls whether or not to enter the
  201. Lisp debugger immediately. If the variable's value is t or a list of symbols
  202. - one of which is the signalled error symbol - the debugger is entered.
  203. See `signal'. (signal ERROR-SYMBOL DATA)
  204. Signal that an error has happened. ERROR-SYMBOL is the name of a symbol
  205. classifying the type of error, it should have a property `error-message' (a
  206. string) with a short description of the error message.
  207. DATA is a list of objects which are relevant to the error -- they will
  208. be made available to any error-handler or printed by the default error
  209. -handler. (error-protect FORM HANDLERS...) <SPECIAL-FORM>
  210. Evaluates FORM with error-handlers in place, if no errors occur return the
  211. value returned by FORM, else the value of whichever handler's body was
  212. evaluated.
  213. Each HANDLER is a list looking like `(ERROR-SYMBOL BODY...)'. If an error
  214. of type ERROR-SYMBOL occurs BODY is evaluated with the symbol `error-info'
  215. temporarily set to `(ERROR-SYMBOL . DATA)' (these were the arguments given to
  216. the `signal' which caused the error). (backtrace [STREAM])
  217. Prints a backtrace of the current Lisp call stack to STREAM (or to
  218. `standard-output').
  219. The format is something like:
  220.   FUNCTION (ARGLIST) ARGS-EVALLED-P
  221. where ARGS-EVALLED-P is either `t' or `nil', depending on whether or not
  222. ARGLIST had been evaluated or not before being put into the stack. The maximum number of times that eval and funcall can be called recursively.
  223. This is intended to stop infinite recursion, if the default value of 250 is
  224. too small (you get errors in normal use) set it to something larger. A list of directory names. When `load' opens a lisp-file it searches each
  225. directory named in this list in turn until the file is found or the list
  226. is exhausted. The name of the directory in which the standard lisp files live. (quote ARG) <SPECIAL-FORM>
  227. 'ARG
  228. Returns ARG. (function ARG) <SPECIAL-FORM>
  229. #'ARG
  230. Normally the same as `quote'. When being compiled, if ARG is not a symbol
  231. it causes ARG to be compiled as a lambda expression. (defmacro NAME LAMBDA-LIST [DOC-STRING] BODY...)
  232. Defines a macro called NAME with argument spec. LAMBDA-LIST, documentation
  233. DOC-STRING (optional) and body BODY. The actual function value is 
  234.     `(macro lambda LAMBDA-LIST [DOC-STRING] BODY...)'
  235. Macros are called with their arguments un-evaluated, they are expected to
  236. return a form which will be executed to provide the result of the expression.
  237.  
  238. A pathetic example could be,
  239.   (defmacro foo (x) (list 'cons nil x))
  240.    => foo
  241.   (foo 'bar)
  242.    => (nil . bar)
  243. This makes `(foo X)' a pseudonym for `(cons nil X)'.
  244.  
  245. Note that macros are expanded at *compile-time* (unless, of course, the Lisp
  246. code has not been compiled). (defun NAME LAMBDA-LIST [DOC-STRING] BODY...)
  247. Defines a function called NAME with argument specification LAMBDA-LIST,
  248. documentation DOC-STRING (optional) and body BODY. The actual function
  249. value is,
  250.     `(lambda LAMBDA-LIST [DOC-STRING] BODY...)' (car CONS-CELL)
  251. Returns the value stored in the car slot of CONS-CELL, or nil if CONS-CELL
  252. is nil. (cdr CONS-CELL)
  253. Returns the value stored in the cdr slot of CONS-CELL, or nil if CONS-CELL
  254. is nil. (list ARGS...)
  255. Returns a new list with members ARGS... (copy-list LIST)
  256. Returns a new list which is identical to LIST except that the cons cells
  257. which it is made from are different, all elements are shared however. (make-list LENGTH [INITIAL-VALUE])
  258. Returns a new list with LENGTH members, each of which is initialised to
  259. INITIAL-VALUE, or nil. (append LISTS...)
  260. Non-destructively concatenates each of it's argument LISTS... into one
  261. new list which is returned. (nconc LISTS... )
  262. Destructively concatenates each of it's argument LISTS... into one new
  263. list. Every LIST but the last is modified so that it's last cdr points
  264. to the beginning of the next list. Returns the new list. (rplaca CONS-CELL NEW-CAR)
  265. Sets the value of the car slot in CONS-CELL to NEW-CAR. Returns the new
  266. value. (rplacd CONS-CELL NEW-CDR)
  267. Sets the value of the cdr slot in CONS-CELL to NEW-CAR. Returns the new
  268. value. (reverse LIST)
  269. Returns a new list which is a copy of LIST except that the members are in
  270. reverse order. (nreverse LIST)
  271. Returns LIST altered so that it's members are in reverse order to what they
  272. were. This function is destructive towards it's argument. (assoc ELT ASSOC-LIST)
  273. Searches ASSOC-LIST for a list whose first element is ELT. `assoc' uses
  274. `equal' to compare elements. Returns the sub-list starting from the first 
  275. matching association. (assq ELT ASSOC-LIST)
  276. Searches ASSOC-LIST for a list whose first element is ELT. `assq' uses `eq'
  277. to compare elements. Returns the sub-list starting from the first matching
  278. association. (nth INDEX LIST)
  279. Returns the INDEXth element of LIST. The first element has an INDEX of zero. (nthcdr INDEX LIST)
  280. Returns the INDEXth cdr of LIST. The first is INDEX zero. (last LIST)
  281. Returns the last element of LIST. (mapcar FUNCTION LIST)
  282. Calls FUNCTION-NAME with each element of LIST as an argument in turn and
  283. returns a new list constructed from the results, ie,
  284.   (mapcar (function (lambda (x) (1+ x))) '(1 2 3))
  285.    => (2 3 4) (mapc FUNCTION LIST)
  286. Applies FUNCTION to each element in LIST, discards the results. (member ELT LIST)
  287. If ELT is a member of list LIST then return the tail of the list starting
  288. from the matched ELT, ie,
  289.   (member 1 '(2 1 3))
  290.    => (1 3)
  291. `member' uses `equal' to compare atoms. (memq ELT LIST)
  292. If ELT is a member of list LIST then return the tail of the list starting
  293. from the matched ELT, ie,
  294.   (memq 1 '(2 1 3))
  295.    => (1 3)
  296. `memq' uses `eq' to compare atoms. (delete ELT LIST)
  297. Returns LIST with any members `equal' to ELT destructively removed. (delq ELT LIST)
  298. Returns LIST with any members `eq' to ELT destructively removed. (delete-if FUNCTION LIST)
  299. Similar to `delete' except that a predicate function, FUNCTION-NAME, is
  300. used to decide which elements to delete (remove destructively).
  301. `delete-if' deletes an element if FUNCTION-NAME returns non-nil when 
  302. applied to that element, ie,
  303.   (delete-if '(lambda (x) (= x 1)) '(1 2 3 4 1 2))
  304.    => (2 3 4 2) (delete-if-not FUNCTION LIST)
  305. Similar to `delete' except that a predicate function, FUNCTION-NAME, is
  306. used to decide which elements to delete (remove destructively).
  307. `delete-if-not' deletes an element if FUNCTION-NAME returns nil when 
  308. applied to that element, ie,
  309.   (delete-if-not '(lambda (x) (= x 1)) '(1 2 3 4 1 2))
  310.    => (1 1) (vector ARGS...)
  311. Returns a new vector with ARGS... as its elements. (make-vector SIZE [INITIAL-VALUE])
  312. Creates a new vector of size SIZE. If INITIAL-VALUE is provided each element
  313. will be set to that value, else they will all be nil. (aset SEQUENCE INDEX NEW-VALUE)
  314. Sets element number INDEX (a positive integer) of SEQUENCE (can be a list,
  315. vector or string) to NEW-VALUE, returning NEW-VALUE. Note that strings
  316. can only contain characters (ie, integers). (aref SEQUENCE INDEX)
  317. Returns the INDEXth (a non-negative integer) element of SEQUENCE, which
  318. can be a list, vector or string. INDEX starts at zero. (make-string LENGTH [INITIAL-VALUE])
  319. Returns a new string of length LENGTH, each character is initialised to
  320. INITIAL-VALUE, or to space if INITIAL-VALUE is not given. (concat ARGS...)
  321. Concatenates all ARGS... into a single string, each argument can be a string,
  322. a character or a list or vector of characters. (length SEQUENCE)
  323. Returns the number of elements in SEQUENCE (a string, list or vector). (prog1 FORM1 FORMS... ) <SPECIAL-FORM>
  324. First evals FORM1 then FORMS, returns the value that FORM1 gave. (prog2 FORM1 FORM2 FORMS...) <SPECIAL-FORM>
  325. Evals FORM1 then FORM2 then the rest. Returns whatever FORM2 gave. (while CONDITION FORMS... ) <SPECIAL-FORM>
  326. Eval CONDITION, if it is non-nil then execute FORMS and repeat the
  327. procedure, else return nil. (if CONDITION THEN-FORM [ELSE-FORMS...] ) <SPECIAL-FORM>
  328. Eval CONDITION, if it is non-nil then eval THEN-FORM and return it's 
  329. result, else do an implicit progn with the ELSE-FORMS returning its value. (when CONDITION FORMS... ) <SPECIAL-FORM>
  330. Evaluates CONDITION, if it is non-nil evaluates FORMS. (unless CONDITION FORMS... ) <SPECIAL-FORM>
  331. Evaluates CONDITION, if it is nil evaluates FORMS. (cond (CONDITION FORMS... ) ... ) <SPECIAL-FORM>
  332. Find the first CONDITION which has a value of t when eval'ed, then perform
  333. a progn on its associated FORMS. If there are no FORMS with the CONDITION
  334. then the value of the CONDITION is returned. If no CONDITION is t then
  335. return nil.
  336. An example,
  337.   (cond
  338.     ((stringp foo)
  339.       (title "foo is a string"))
  340.     ((numberp foo)
  341.       (setq bar foo)
  342.       (title "foo is a number"))
  343.     (t
  344.       (title "foo is something else...")))
  345. Note the use of plain `t' on it's own for the last CONDITION, this is
  346. like the last else in an else-if statement in C. (apply FUNCTION ARGS... ARG-LIST)
  347. Calls FUNCTION passing all of ARGS to it as well as all elements in ARG-LIST.
  348. ie,
  349.   (apply '+ 1 2 3 '(4 5 6))
  350.    => 21 (load FILE [NO-ERROR-P] [NO-PATH-P] [NO-SUFFIX-P])
  351. Attempt to open and then read-and-eval the file of Lisp code FILE.
  352.  
  353. For each directory named in the variable `load-path' tries the value of
  354. FILE with `.jlc' (compiled-lisp) appended to it, then with `.jl' appended
  355. to it, finally tries FILE without modification.
  356.  
  357. If NO-ERROR-P is non-nil no error is signalled if FILE can't be found.
  358. If NO-PATH-P is non-nil the `load-path' variable is not used, just the value
  359. of FILE.
  360. If NO-SUFFIX-P is non-nil no suffixes are appended to FILE.
  361.  
  362. If the compiled version is older than it's source code, the source code is
  363. loaded and a warning is displayed. (+ NUMBERS...)
  364. Adds all NUMBERS together. (- NUMBER [NUMBERS...])
  365. Either returns the negation of NUMBER or the value of NUMBER minus
  366. NUMBERS (* NUMBERS...)
  367. Multiplies all NUMBERS together (/ NUMBERS...)
  368. Divides NUMBERS (in left-to-right order), ie,
  369.   (/ 100 2
  370.    => 10 (mod NUMBERS...)
  371. Applies the modulus operator between each of NUMBERS. (bit-not NUMBER)
  372. Returns the bitwise not of NUMBER. (not ARG)
  373. If ARG is nil returns t, else returns nil. (bit-or NUMBERS...)
  374. Bitwise ORs all NUMBERS together. (or FORMS...) <SPECIAL-FORM>
  375. Evals each FORM while they return nil, returns the first non-nil result or
  376. nil if all FORMS return nil. (bit-and NUMBERS...)
  377. Bitwise AND all NUMBERS together. (and FORMS... ) <SPECIAL-FORM>
  378. Evals each FORM until one returns nil, it returns that value, or t if all
  379. FORMS return t. (equal VALUE1 VALUE2)
  380. Compares VALUE1 and VALUE2, compares the actual structure of the objects not
  381. just whether the objects are one and the same. ie, will return t for two
  382. strings built from the same characters in the same order even if the strings'
  383. location in memory is different. (eq VALUE1 VALUE2)
  384. Returns t if VALUE1 and VALUE2 are one and the same object. Note that
  385.   (eq 1 1)
  386.    => nil (string-head-eq STRING1 STRING2)
  387. Returns t if STRING2 matches the beginning of STRING1, ie,
  388.   (string-head-eq "foobar" "foo")
  389.    => t
  390.   (string-head-eq "foo" "foobar")
  391.    => nil (= NUMBER1 NUMBER2)
  392. Returns t if NUMBER1 and NUMBER2 are equal. (/= NUMBER1 NUMBER2)
  393. Returns t if NUMBER1 and NUMBER2 are unequal. (> ARG1 ARG2)
  394. Returns t if ARG1 is greater than ARG2. Note that this command isn't
  395. limited to numbers, it can do strings, positions, marks, etc as well. (>= ARG1 ARG2)
  396. Returns t if ARG1 is greater-or-equal than ARG2. Note that this command
  397. isn't limited to numbers, it can do strings, positions, marks, etc as well. (< ARG1 ARG2)
  398. Returns t if ARG1 is less than ARG2. Note that this command isn't limited to
  399. numbers, it can do strings, positions, marks, etc as well. (<= ARG1 ARG2)
  400. Returns t if ARG1 is less-or-equal than ARG2. Note that this command isn't
  401. limited to numbers, it can do strings, positions, marks, etc as well. (1+ NUMBER)
  402. Return NUMBER plus 1. (1- NUMBER)
  403. Return NUMBER minus 1. (lsh NUMBER COUNT)
  404. Shift the bits in NUMBER by COUNT bits to the left, a negative COUNT means
  405. shift right. (zerop NUMBER)
  406. t if NUMBER is zero. (null ARG)
  407. Returns t if ARG is nil. (atom ARG)
  408. Returns t if ARG is not a cons-cell. (consp ARG)
  409. Returns t if ARG is a cons-cell. (listp ARG)
  410. Returns t if ARG is a list, (either a cons-cell or nil). (numberp ARG)
  411. Return t if ARG is a number. (stringp ARG)
  412. Returns t is ARG is a string. (vectorp ARG)
  413. Returns t if ARG is a vector. (functionp ARG)
  414. Returns t if ARG is a function (ie, a symbol or a list whose car is the
  415. symbol `lambda' (special-form-p ARG)
  416. Returns t if ARG is a special-form. (keymapp ARG)
  417. Returns t if ARG is a keytab or a keylist. (subr-p ARG)
  418. Returns t if arg is a primitive function. (subr-documentation SUBR [USE-VAR])
  419. Returns the doc-string associated with SUBR. (subr-name SUBR [USE-VAR])
  420. Returns the name (a string) associated with SUBR. (eval-hook HOOK ARGS...)
  421. Evaluate the hook, HOOK (a symbol), with arguments ARGS
  422.  
  423. The way hooks work is that the hook-symbol's value is a list of functions
  424. to call. Each function in turn is called with ARGS until one returns non-nil,
  425. this non-nil value is then the result of `eval-hook'. If all functions return
  426. nil then `eval-hook' returns nil. (eval-hook2 HOOK ARG)
  427. Similar to `eval-hook', the only reason this function exists is because it
  428. is easier to call a 2-argument function from C than an N-argument function. (catch TAG FORMS...) <SPECIAL-FORM>
  429. Evaluates FORMS, non-local exits are allowed with `(throw TAG)'.
  430. The value of `catch' is either the value of the last FORM or the
  431. value given to the throw command.
  432.  
  433. There are several pre-defined `catch'es which are,
  434.   'defun
  435.      Around all defuns, the `return' command uses this, it basically does
  436.      (throw 'defun X).
  437.   'exit
  438.      Exits one level of recursive-editing (but doesn't work in the top
  439.      level.
  440.   'top-level
  441.      At the top-level recursive-edit (ie, the one which you're in when
  442.      the editor is started).
  443.   'quit
  444.      Kills the editor. (throw TAG VALUE)
  445. Performs a non-local exit to the `catch' waiting for TAG and return
  446. VALUE from it. TAG and VALUE are both evaluated fully. (return VALUE)
  447. Arranges it so that the innermost defun returns VALUE as its result, this
  448. is achieved by doing what amounts to `(throw 'defun VALUE)'. (unwind-protect BODY CLEANUP-FORMS...) <SPECIAL-FORM>
  449. Eval and return the value of BODY guaranteeing that the CLEANUP-FORMS will
  450. be evalled no matter what happens (ie, error, non-local exit, etc) while
  451. BODY is being evaluated. (lisp-code CODE-STRING CONST-VEC MAX-STACK)
  452. Evaluates the string of byte codes CODE-STRING, the constants that it
  453. references are contained in the vector CONST-VEC. MAX-STACK is a number
  454. defining how much stack space is required to evaluate the code.
  455.  
  456. Do *not* attempt to call this function manually, the lisp file `compiler.jl'
  457. contains a simple compiler which translates files of lisp forms into files
  458. of byte code. See the functions `compile-file', `compile-directory' and
  459. `compile-lisp-lib' for more details. (recursive-edit)
  460. Enter a new recursive-edit. (recursion-depth)
  461. Returns the number of recursive-edit's deep we are, zero signifies the
  462. original level. (input-lock [STATUS])
  463. Sets or returns the status of the input lock. When this value is non-zero
  464. no user input is accepted, only messages from ARexx can get through. (file-concat PARTS...)
  465. Returns a string made from all the PARTS, each of which is one component of
  466. a filename. Add's `/' characters between each PART if necessary. (system SHELL-COMMAND)
  467. Tells the operating-system to execute SHELL-COMMAND, returns the exit code
  468. of that command. (substr STRING START LENGTH)
  469. Returns the portion of STRING starting at character number START for
  470. LENGTH characters, a LENGTH of zero means all characters after START. (beep)
  471. Rings a bell. (base-name FILE-NAME)
  472. Returns the file part of FILE-NAME. (path-name FILE-NAME)
  473. Returns the directory part of FILE-NAME. (balance-brackets OPEN-STRING CLOSE-STRING STRING) (strtoc STRING)
  474. Returns the first character of STRING. (ctostr CHAR)
  475. Returns a one-character string containing CHAR. (amiga-p)
  476. t if running on an Amiga. (x11-p)
  477. t if running on the X Window System V11. (unix-p)
  478. t if running under some flavour of unix. (tmp-file-name)
  479. Returns the name of a unique file. (make-completion-string EXISTING [POSSIBLE | POSIIBLE...]) (current-time)
  480. Return some number denoting the current system time. (current-time-string)
  481. Returns a human-readable string defining the current date and time. (major-version-number) (minor-version-number) (getenv NAME)
  482. Returns the value of environment variable NAME as a string, or nil if it is
  483. undefined. (screen-top-line)
  484. Returns the line number of the first line being shown in the current window. (screen-bottom-line)
  485. Returns the line number of the last line being shown in the current window. (screen-first-column)
  486. Returns the line number of the first column being shown in the current window. (screen-last-column)
  487. Returns the line number of the last column being shown in the current window. (goto POS)
  488. Set the cursor position in the current window to POS. (next-screen [NUMBER])
  489. Move NUMBER (default: 1) screens forwards in the current window. (prev-screen [NUMBER])
  490. Move NUMBER (default: 1) screens backwards in the current window. (file-end [BUFFER])
  491. Return the position of the last character in BUFFER. (goto-file-end)
  492. Move to the last character in the current window. (file-start)
  493. Return the position of the start of the file. (goto-file-start)
  494. Move to the first character in the buffer displayed in the current window. (line-end [POS] [BUFFER])
  495. Return the position of the last character in the line pointed to by POS (or
  496. the cursor). (goto-line-end)
  497. Move to the last character in the line. (line-start [POS])
  498. Return the position of the first character in the line pointed to by POS
  499. (or the cursor). (goto-line-start)
  500. Move to the start of the current line. (next-line [NUMBER] [POS])
  501. Return the position of the NUMBERth (def: 1) line down from that pointed to
  502. by POS (or the cursor). POS is altered. (goto-next-line [NUMBER])
  503. Move NUMBER lines (def: 1) downwards. (prev-line [NUMBER] [POS])
  504. Return the position of the NUMBERth (def: 1) line up from that pointed to
  505. by POS (or the cursor). POS is altered. (goto-next-line [NUMBER])
  506. Move NUMBER lines (def: 1) upwards. (left-char [NUMBER] [POS])
  507. Return the position of the NUMBERth character (def: 1) to the left of the
  508. one pointed to by POS (or the cursor). If that position is before the
  509. beginning of the line, returns nil. POS is altered. (goto-left-char [NUMBER])
  510. Move NUMBER chars (def: 1) to the left. (right-char [NUMBER] [POS])
  511. Return the position of the NUMBERth character (def: 1) to the right of the
  512. one pointed to by POS (or the cursor). Doesn't pay any attention to newlines.
  513. POS is altered. (goto-right-char [NUMBER])
  514. Move NUMBER chars (def: 1) to the right (prev-tab [NUMBER] [POS])
  515. Return the position of the NUMBERth (def: 1) tab stop to the left of POS (or
  516. the cursor). Returns nil if that position is past the beginning of the line.
  517. POS is altered. (goto-prev-tab [NUMBER])
  518. Move NUMBER (def: 1) tab stops to the left. (next-tab [NUMBER] [POS])
  519. Return the position of the NUMBERth (def: 1) tab stop to the right of POS (or
  520. the cursor). POS is altered. (goto-next-tab [NUMBER])
  521. Move NUMBER (def: 1) tab stops to the right (next-char [POS])
  522. Returns the position of the next character after POS (or the cursor).
  523. Will move to the start of the next line after the end of the current line.
  524. POS is altered. (goto-next-char)
  525. Moves to the next character. Will move to the start of the next line after
  526. the end of the current line. (prev-char [POS])
  527. Returns the position of the character before POS (or the cursor). Will move
  528. to the start of the next line after the end of the current line.
  529. POS is altered. (goto-prev-char)
  530. Moves to the previous character. Will move to the start of the next line
  531. after the end of the current line. (match-brackets [POS] [BUFFER])
  532. Find a bracket matching the one at POS (or the cursor). The things that match
  533. each other are,  { }, ( ), [ ], ` ', < >. POS is altered. (mouse-pos)
  534. Return the position of the mouse pointer, relative to the display origin of
  535. the buffer in the current window. (cursor STATUS)
  536. Turns cursor on or off, normally cursor is always off when an event is being
  537. evaluated. (refresh-all)
  538. Redraw anything that has been changed since the last refresh. (write STREAM DATA)
  539. Writes DATA, which can either be a string or a character, to the stream
  540. STREAM, returning the number of characters actually written. (read-char STREAM)
  541. Reads the next character from the input-stream STREAM, if no more characters
  542. are available returns nil. (read-line STREAM)
  543. Read one line of text from STREAM. (copy-stream SOURCE-STREAM DEST-STREAM)
  544. Copy all characters from SOURCE-STREAM to DEST-STREAM until an EOF is read. (read [STREAM])
  545. Reads one lisp-object from the input-stream STREAM (or the value of the
  546. variable `standard-input' if STREAM is unspecified) and return it. (print OBJECT [STREAM])
  547. First outputs a newline, then prints a text representation of OBJECT to
  548. STREAM (or the contents of the variable `standard-output') in a form suitable
  549. for `read'. (prin1 OBJECT [STREAM])
  550. Prints a text representation of OBJECT to STREAM (or the contents of the
  551. variable `standard-output') in a form suitable for `read'. (princ OBJECT [STREAM])
  552. Prints a text representation of OBJECT to STREAM (or the contents of the
  553. variable standard-output), no strange characters are quoted and no quotes
  554. are printed around strings. (format STREAM FORMAT-STRING ARGS... )
  555. Writes a string created from the format specification FORMAT-STRING and
  556. the argument-values ARGS to the stream, STREAM.
  557. FORMAT-STRING is a template for the result, any `%' characters introduce
  558. a substitution, using the next unused ARG. These format specifiers are
  559. implemented:
  560.    d      print next ARG as decimal integer
  561.    x      print next ARG as hexadecimal integer
  562.    c      print next ARG as ASCII character
  563.    s      unquoted representation (as from `princ') of next ARG
  564.    S      normal print'ed representation of next ARG
  565.    %      literal percentage character
  566.  
  567. Returns STREAM. (open [FILE-NAME MODE-STRING] [FILE])
  568. Opens a file called FILE-NAME with modes MODE-STRING (standard c-library
  569. modes, ie `r' == read, `w' == write, etc). If FILE is given it is an
  570. existing file object which is to be closed before opening the new file on it. (close FILE)
  571. Kills any association between object FILE and the file in the filesystem that
  572. it has open. (flush-file FILE)
  573. Flushes any buffered output on FILE. (file-p ARG)
  574. Returns t if ARG is a file object. (file-bound-p FILE)
  575. Returns t if FILE is currently bound to a physical file. (file-binding FILE)
  576. Returns the name of the physical file FILE is bound to, or nil. (file-eof-p FILE
  577. Returns t when end of FILE is reached. (read-file-until FILE REGEXP [IGNORE-CASE-P])
  578. Read lines from the Lisp file object FILE until one matching the regular
  579. expression REGEXP is found. The matching line is returned, or nil if no
  580. lines match.
  581. If IGNORE-CASE-P is non-nil the regexp matching is not case-sensitive. (stdin-file)
  582. Returns the file object representing the editor's standard input. (stdout-file)
  583. Returns the file object representing the editor's standard output. (make-symbol NAME)
  584. Returns a new, uninterned, symbol with print-name NAME. It's value and
  585. function definition are both void and it has a nil property-list. (make-obarray SIZE)
  586. Creates a new structure for storing symbols in. This is basically a vector
  587. with a few slight differences (all pointers initialised to NULL). (find-symbol NAME [OBARRAY])
  588. Returns the symbol with print-name NAME, found by searching OBARRAY (or
  589. the default `obarray' if nil), or nil if no such symbol exists. (intern-symbol SYMBOL [OBARRAY])
  590. Stores SYMBOL in OBARRAY (or the default). If SYMBOL has already been interned
  591. somewhere an error is signalled. (intern NAME [OBARRAY])
  592. If a symbol with print-name exists in OBARRAY (or the default) return it.
  593. Else use `(make-symbol NAME)' to create a new symbol, intern that into the
  594. OBARRAY, then return it. (unintern SYMBOL [OBARRAY])
  595. Removes SYMBOL from OBARRAY (or the default). Use this with caution. (symbol-value SYMBOL)
  596. Returns the value of SYMBOL, if SYMBOL is flagged as having buffer-local
  597. values look for one of those first. (set SYMBOL VALUE)
  598. Sets the value of SYMBOL to VALUE, if SYMBOL is flagged as having buffer-
  599. local values then set that value. Returns VALUE. (setplist SYMBOL PROP-LIST)
  600. Sets the property list of SYMBOL to PROP-LIST, returns PROP-LIST. (symbol-name SYMBOL)
  601. Returns the print-name of SYMBOL. (symbol-function SYMBOL)
  602. Returns the function value of SYMBOL. (fboundp SYMBOL)
  603. Returns t if the function-slot of SYMBOL has a value. (boundp SYMBOL)
  604. Returns t if SYMBOL has a value as a variable. (symbol-plist SYMBOL)
  605. Returns the property-list of SYMBOL. (gensym)
  606. Returns a new (non-interned) symbol with a unique print name. (symbolp ARG)
  607. Returns t if ARG is a symbol. (setq { SYMBOL FORM }...) <SPECIAL-FORM>
  608. Sets the value of each SYMBOL to the value of its corresponding FORM
  609. evaluated, returns the value of the last evaluation. ie,
  610.   (setq x 1 y (symbol-name 'nil))
  611.    => "nil"
  612.   x
  613.    => 1
  614.   y
  615.    => "nil" (fset SYMBOL VALUE)
  616. Sets the function value of SYMBOL to VALUE, returns VALUE. (makunbound SYMBOL)
  617. Make SYMBOL have no value as a variable. (fmakunbound SYMBOL)
  618. Make the function slot of SYMBOL have no value. (let (SYMBOL-BINDINGS...) BODY...) <SPECIAL-FORM>
  619. Binds temporary values to symbols while BODY is being evaluated.
  620. Each SYMBOL-BINDING is either a symbol, in which case that symbol is bound to
  621. nil, or a list. The symbol at the head of this list is bound to the progn'ed
  622. value of the forms making up the tail. ie,
  623.   (let
  624.       ((foo 1 2 3)
  625.        bar)
  626.     (cons foo bar))
  627.    => (3 . nil)
  628.  
  629. All values of the new bindings are evaluated before any symbols are bound. (let* (SYMBOL-BINDINGS...) BODY...) <SPECIAL-FORM>
  630. Binds temporary values to symbols while BODY is being evaluated.
  631. Each SYMBOL-BINDING is either a symbol, in which case that symbol is bound to
  632. nil, or a list. The symbol at the head of this list is bound to the progn'ed
  633. value of the forms making up the tail. ie,
  634.   (let*
  635.       ((foo 1 2 3)
  636.        bar)
  637.     (cons foo bar))
  638.    => (3 . nil)
  639.  
  640. The value of each binding is evaluated just before that symbol is bound,
  641. this means that,
  642.   (setq x 'foo)
  643.   (let*
  644.       ((x 10)
  645.        (y x))
  646.     (cons x y))
  647.    => (10 . 10) (get SYMBOL PROPERTY)
  648. Returns the value of SYMBOL's property PROPERTY. See `put'. (put SYMBOL PROPERTY VALUE)
  649. Sets the value of SYMBOL's property PROPERTY to VALUE, this value can be
  650. retrieved with the `get' function. (buffer-variables [BUFFER])
  651. Returns a list of (SYMBOL . VALUE) bindings which take effect when the
  652. current buffer is BUFFER. (window-variables [WINDOW])
  653. Returns a list of (SYMBOL . VALUE) bindings which take effect when the
  654. current window is WINDOW. (apropos REGEXP [PREDICATE] [OBARRAY])
  655. Returns a list of symbols from OBARRAY (or the default) whose print-name
  656. matches the regular-expression REGEXP. If PREDICATE is given and non-nil,
  657. each symbol which matches is applied to the function PREDICATE, if the value
  658. is non-nil it is considered a match. (set-buffer-variable SYMBOL)
  659. Flags that SYMBOL might have a value local to each buffer. (buffer-variable-p SYMBOL)
  660. Returns t if `set-buffer-variable' has been called on this symbol. (set-window-variable SYMBOL)
  661. Flags that SYMBOL might have a value local to each window. (window-variable-p SYMBOL)
  662. Returns t if `set-window-variable' has been called on this symbol. (set-const-variable SYMBOL)
  663. Flags that the value of SYMBOL may not be changed. (const-variable-p SYMBOL)
  664. Return t is `set-const-variable' has been called on SYMBOL. (trace SYMBOL)
  665. Flag that whenever SYMBOL is evaluated (as a variable or a function) the
  666. debugger is entered. (untrace SYMBOL)
  667. Cancel the effect of (trace SYMBOL). (cons CAR-VALUE CDR-VALUE)
  668. Returns a new cons-cell with car CAR-VALUE and cdr CDR-VALUE. (pos X Y)
  669. Returns a new position object with coordinates (X , Y). (dup-pos POS)
  670. Returns a new copy of POS. The number of bytes of storage which must be used before a garbage-
  671. collection is triggered. The number of bytes of storage which must be used before a garbage-
  672. collection is triggered when the editor is idle. (garbage-collect)
  673. Scans all allocated storage for unusable data, and puts it onto the free-
  674. list. This is done automatically when the amount of storage used since the
  675. last garbage-collection is greater than `garbage-threshold'. (make-window [X] [Y] [WIDTH] [HEIGHT])
  676. Return a new window, it will be displaying the same buffer as the currently
  677. active window. (destroy-window [WINDOW])
  678. Close WINDOW (or the current window), if this was the last one all files in
  679. memory are flushed and jade will exit. (sleep-window [WINDOW])
  680. Iconifies the current window. (unsleep-window [WINDOW])
  681. Uniconifies the current window. (next-window [WINDOW] [ACTIVATE])
  682. Cycles through the open windows forwards. (title STRING)
  683. Temporarily sets the status display to STRING, this won't happen until the
  684. window is next refreshed. (title STRING)
  685. Immediately sets the status display to STRING. (font-name [WINDOW])
  686. Returns the name of the font being used in this window. Maximum scroll distance (number of lines). If a set of lines has to be
  687. scrolled further than this the whole window is redrawn. Controls the actual number of lines scrolled when the cursor moves out of
  688. view. The number of lines to move the display origin is calcualted with the
  689. formula:
  690.   LINES_TO_SCROLL = TOTAL_LINES_IN_WINDOW / y-scroll-step-ratio
  691. If the value is 0 then the window will be scrolled by one line. Controls the actual number of columns scrolled when the cursor moves out of
  692. view. The number of lines to move the display origin is calcualted with the
  693. formula:
  694.   COLUMNS_TO_SCROLL = TOTAL_COLUMNS_IN_WINDOW / x-scroll-step-ratio
  695. If the value is 0 then the window will be scrolled by one column. (rect-blocks-p [WINDOW])
  696. Returns t if blocks marked in WINDOW (or the current one) are treated as
  697. rectangles. (set-rect-blocks WINDOW STATUS)
  698. Controls whether or not blocks are taken as contiguous regions of text or as
  699. rectangles in WINDOW. When STATUS is t rectangles are used. (window-asleep-p)
  700. Returns t if window is currently iconified. (window-count)
  701. Number of opened windows. (position-window LEFT TOP WIDTH HEIGHT)
  702. Sets the position and dimensions of the current window. These are all
  703. *pixel* measurememnts. (current-window)
  704. Returns the currently active window. Note that this is the editor's notion
  705. of `current' -- it doesn't necessarily mean that this is the window to which
  706. your window system will send input events to. (with-window WINDOW FORMS...) <SPECIAL-FORM>
  707. Set the editor's current window to WINDOW and evaluate FORMS, then
  708. reinstall the original window as the current one. (set-current-window WINDOW [ACTIVATE-P])
  709. Sets the window which jade reguards as current.
  710. If ACTIVATE-P is non-nil the window will be activated with respect to the
  711. window-system (under X11 this means warping the pointer to the top left corner
  712. of the window as well). (window-id [WINDOW])
  713. Returns the identifier of the physical window that the Lisp window WINDOW
  714. points to. This is window-system dependant, under X11 it will be some integer,
  715. under Intuition a pointer (integer) to the window structure. (font-x-size [WINDOW])
  716. Returns the width of the window's font (in pixels). (font-y-size [WINDOW])
  717. Returns the height of the window's font (in pixels). (set-font FONT-NAME [WINDOW])
  718. FONT-NAME specifies the font to use in WINDOW (or the active one).
  719. Under X11 FONT-NAME is a standard font description, under AmigaDOS it is the
  720. name of the font followed by a dash and then the point size to use (for
  721. example "topaz.font-8" to get an 8-point topaz font). (screen-width)
  722. Returns the width of the root window or screen in pixels. (screen-height)
  723. Returns the height of the root window or screen in pixels. (window-left-edge)
  724. Returns the x position of the current window relative to the origin of the
  725. root window or screen. (window-top-edge)
  726. Returns the y position of the current window relative to the origin of the
  727. root window or screen. (window-width)
  728. Returns the width, in pixels, of the current window. (window-height)
  729. Returns the height, in pixels, of the current window. (window-bar-height)
  730. On an Amiga returns the number of pixels high the title bar of the window
  731. is. This is 0 in X11. (flush-output)
  732. Forces any cached window output to be drawn. This is usually unnecessary. (delete-file FILE-NAME)
  733. Attempts to delete the file called FILE-NAME. (rename-file SRC DEST)
  734. Tries to rename the file SRC as DEST, this doesn't work across filesystems, or
  735. if a file DEST already exists. (copy-file SRC DEST)
  736. Copies the file called SRC to the file DEST. (file-readable-p FILE)
  737. Returns t if FILE available for reading from. (file-writeable-p FILE)
  738. Returns t if FILE available for writing to. (file-exists-p FILE)
  739. Returns t if FILE exists. (file-regular-p FILE)
  740. Returns t if FILE is a ``normal'' file, ie, not a directory, device, symbolic
  741. link, etc... (file-directory-p FILE)
  742. Returns t if FILE is a directory. (file-symlink-p FILE)
  743. Returns t if FILE is a symbolic link to another file. (file-owner-p FILE)
  744. Returns t if the ownership (uid & gid) of file FILE (a string) is the same
  745. as that of any files written by the editor. (file-nlinks FILE)
  746. Returns the number of links pointing to the file called FILE. This will be
  747. one if FILE has only one name. Doesn't count symbolic links. (file-modes FILE)
  748. Return the access permissions of the file called FILE, an integer. Note that
  749. the format of this integer is not defined, it differs from system to system. (set-file-modes FILE MODES)
  750. Sets the access permissions of FILE to MODES, an integer. The only real way
  751. you can get this integer is from `file-modes' since it changes from system
  752. to system. (file-modtime FILE)
  753. Return the time (an integer) that FILE was last modified. (directory-files DIRECTORY)
  754. Returns a list of the names of all files in directory DIRECTORY, directories
  755. in DIRECTORY have a `/' character appended to their name. (user-login-name)
  756. Returns the login name of the user (a string).
  757. On the Amiga this is taken from the environment variable `USERNAME'. (user-full-name)
  758. Returns the real name of the user (a string).
  759. On the Amiga this is taken from the environment variable `REALNAME'. (user-home-directory)
  760. Returns the user's home directory (a string). It will be terminated by a slash
  761. (or whatever is appropriate) so that it can be glued together with a file name
  762. making a valid path name.
  763. On the Amiga this is taken from the environment variable `HOME'. (system-name)
  764. Returns the name of the host which the editor is running on.
  765. On the Amiga this is taken from the environment variable `HOSTNAME'. (make-process [OUTPUT-STREAM] [EXIT-FUNCTION]) <UNIX-ONLY>
  766. Creates a new process-object, OUTPUT-STREAM is where all output from this
  767. process goes, EXIT-FUNCTION is a function to call each time a process running
  768. on this object exits. (fork-process PROCESS FILE-NAME ARGV) <UNIX-ONLY>
  769. Starts a process running on process-object PROCESS. The child-process runs
  770. asynchronously with the editor.
  771.  
  772. FILE-NAME is the filename of the binary image, it will be searched for in
  773. all directories listed in the `PATH' environment variable.
  774. ARGV is a vector of all arguments to give to the process (including
  775. argument zero, normally the name of the process). (run-process PROCESS FILE-NAME ARGV) <UNIX-ONLY>
  776. Starts a process running on process-object PROCESS. Waits for the child to
  777. exit, then returns the exit-value of the child.
  778.  
  779. FILE-NAME is the filename of the binary image, it will be searched for in
  780. all directories listed in the `PATH' environment variable.
  781. ARGV is a vector of all arguments to give to the process (including
  782. argument zero, normally the name of the process). (signal-process PROCESS SIGNAL) <UNIX-ONLY>
  783. If PROCESS is running asynchronously (or has been, and the pty is still being
  784. used by a child) then send signal number SIGNAL to all processes running under
  785. PROCESS's pseudo-terminal (if the process-group of the pseudo-terminal is
  786. unobtainable, send the signal to the process group with PROCESS as leader). (interrupt-process PROCESS) <UNIX-ONLY>
  787. Do (signal-process PROCESS SIGINT) or equivalent. (kill-process PROCESS) <UNIX-ONLY>
  788. Do (signal-process PROCESS SIGKILL) or equivalent. (stop-process PROCESS) <UNIX-ONLY>
  789. Suspends execution of PROCESS, see `continue-process'. (continue-process PROCESS) <UNIX-ONLY>
  790. Restarts PROCESS after it has been stopped (via `stop-process'). (process-exit-status PROCESS) <UNIX-ONLY>
  791. Returns the unprocessed exit-status of the last process to be run on the
  792. process-object PROCESS. If PROCESS is currently running, return nil. (process-exit-value PROCESS) <UNIX-ONLY>
  793. Returns the return-value of the last process to be run on PROCESS, or nil if:
  794.   a) no process has run on PROCESS
  795.   b) PROCESS is still running
  796.   c) PROCESS exited abnormally (process-id PROCESS) <UNIX-ONLY>
  797. If PROCESS is running, return the process-identifier associated with it
  798. (ie, its pid). (process-running-p PROCESS) <UNIX-ONLY>
  799. Return t if PROCESS is running. (process-stopped-p PROCESS) <UNIX-ONLY>
  800. Return t if PROCESS has been stopped. (process-in-use-p PROCESS) <UNIX-ONLY>
  801. Similar to `process-running-p' except that this returns t even when the
  802. process has stopped, or has exited but the pty connected to `PROCESS' is still
  803. in use. (process-p ARG) <UNIX-ONLY>
  804. Return t is ARG is a process-object. (process-name PROCESS) <UNIX-ONLY>
  805. Return the name of the program running on PROCESS. (process-argv PROCESS) <UNIX-ONLY>
  806. Return the arguments of the process running on PROCESS. (process-output-stream PROCESS) <UNIX-ONLY>
  807. Return the stream to which all output from PROCESS is sent. (set-process-output-stream PROCESS STREAM) <UNIX-ONLY>
  808. Set the output-stream of PROCESS to STREAM. (process-exit-function PROCESS) <UNIX-ONLY>
  809. Return the function which is called when PROCESS exits. (set-process-exit-function PROCESS FUNCTION) <UNIX-ONLY>
  810. Set the function which is called when PROCESS exits to FUNCTION. (menu-status ENABLED-P [WINDOW]) <AMIGA-ONLY>
  811. If ENABLED-P is non-nil the menu will be active in WINDOW, if WINDOW is not
  812. specified, menus will be enabled in *all* windows. When a menu is not enabled
  813. in a window right mouse button events will be detectable.
  814.  
  815. Note that for a menu to be displayed the `set-menu' command must be used first
  816. to create a menu strip. (menu-enabled-p [WINDOW]) <AMIGA-ONLY>
  817. Returns t if a menu is being displayed in WINDOW (or the current window). (set-menu MENUS...) <AMIGA-ONLY>
  818. Creates a new menustrip, each window then has these menus.
  819.  
  820. Each MENU defines a single menu block, it has this format,
  821.  
  822.     (MENU-NAME MENU-ITEM...)
  823.  
  824. MENU-NAME is the name of the block, each MENU-ITEM defines a single menuitem,
  825. they are either nil (empty menu item) or look like,
  826.  
  827.     (ITEM-NAME [SHORTCUT] FORMS...)
  828.  
  829. ITEM-NAME is the item name, SHORTCUT is an optional keyboard shortcut (a one
  830. character long string) and FORMS are the forms which get evaluated when the
  831. menu is picked.
  832.  
  833. The shortcuts may be upper or lower case. Menu shortcuts are only
  834. considered to be case-significant when two shortcuts of the same letter (but
  835. different case) are defined. (rexx-async-macro NAME) <AMIGA-ONLY>
  836. Asynchronously invokes the ARexx macro called NAME. (rexx-async-str STRING) <AMIGA-ONLY>
  837. Gets ARexx to asynchronously interpret the string of REXX code STRING. (rexx-sync-macro NAME) <AMIGA-ONLY>
  838. Invokes the ARexx macro NAME synchronously, returning its value when it
  839. exits (this will either be a number or a string. (rexx-sync-str STRING) <AMIGA-ONLY>
  840. Synchronously executes the string of ARexx commands STRING, returning their
  841. exit value. Variable holding the name of our ARexx port. (Amiga only). (file-req TITLE [FILE-NAME] [FOR-WRITING-P])
  842. *AMIGA ONLY*
  843. Displays a file requester (standard one from asl.library) asking for the name
  844. of a file. FOR-WRITING-P should be non-nil if the file being requested for
  845. will be written to. TITLE is the name of the requester. FILE-NAME is
  846. the starting value for the filename.
  847.  
  848. If a filename is selected its name is returned (a string), else this
  849. function returns nil. (req BODY GADGETS) <AMIGA-ONLY>
  850. Function to do a request.
  851. Result is number of gadget pressed (starting at 1 for leftmost gadget and
  852. incrementing by one, rightmost gadget is 0. This variable controls the name of the public-screen which the window
  853. opens onto. It is only available when running on an Amiga. (open-window [BUFFER] [X] [Y] [WIDTH] [HEIGHT])
  854. Creates a new window display BUFFER or the buffer that the current window is
  855. showing. (close-window [WIN])
  856. Close window WIN, or the current window. (close-other-windows [WIN])
  857. Close all windows except for WIN, or the current one. (add-buffer BUFFER)
  858. Make sure that BUFFER is in the `buffer-list' of all open windows. It gets
  859. put at the end of the list. (remove-buffer BUFFER)
  860. Delete all references to BUFFER in any of the windows' `buffer-list' (in-other-window BODY...) <MACRO>
  861. Switches to the ``other'' window and evaluates BODY in it. (goto-other-window)
  862. Switch to the ``other'' window. (prompt2 COMP-FUNC [TITLE] [START] [WORD-REGEXPS])
  863. Prompts for a string using completion. COMP-FUNC is a function which takes
  864. one argument, the string which should be completed. It should return a list
  865. of all matches. TITLE is the optional title to print in the buffer, START the
  866. original contents of the buffer. WORD-REGEXPS is a vector of two regexps
  867. corresponding to the values of `word-regexp' and `word-not-regexp' for the
  868. completion mechanism.
  869. The string entered is returned, or nil if the prompt is cancelled (by Ctrl-g). (get-mode NAME)
  870. Scan the alist `mode-alist' for a mode whose regexp matches NAME,
  871. returning the initialisation function of that mode (a symbol) or nil. (init-mode BUF [NAME])
  872. Initialise an edit-mode for buffer BUF, either calls the function named
  873. in the buffer-local variable `major-mode' or finds a mode in `mode-alist'
  874. using one of the following to match against:
  875.   1. NAME
  876.   2. The value of the variable `mode-name'
  877.   3. The word specified on the first line of the buffer surrounded by
  878.      `-*-...-*-' (ie, -*-texinfo-*-)
  879.   4. The name of the file being edited in the buffer (kill-mode [BUF])
  880. Destroy the mode being used to edit buffer BUF with. (defvar NAME DEFAULT-VALUE [DOC-STRING]) <MACRO>
  881. Define a variable called NAME whose standard initial-value is DEFAULT-
  882. VALUE. If NAME is already bound to a value it is left as it is. (defconst NAME DEFAULT-VALUE [DOC-STRING]) <MACRO>
  883. Define a constant NAME whose standard value is DEFAULT-VALUE.
  884. If NAME is already bound to a value it is left untouched. (add-hook HOOK-SYMBOL FUNCTION-NAME [AT-END])
  885. Arrange it so that FUNCTION-NAME is added to the hook-list stored in
  886. symbol, HOOK-SYMBOL. It will added at the head of the list unless AT-END
  887. is non-nil in which case it is added at the end. (remove-hook HOOK-SYMBOL FUNCTION-NAME)
  888. Remove FUNCTION-NAME from the hook HOOK-SYMBOL. (documentation SYMBOL [IS-VARIABLE])
  889. Returns the documentation-string for SYMBOL. If IS-VARIABLE is t the
  890. documentation for the variable stored in SYMBOL is returned, else
  891. the function doc is provided. (document-var SYMBOL DOC-STRING)
  892. Sets the `variable-documentation' property of SYMBOL to DOC-STRING. (read-from-string STRING [START])
  893. Reads an object from STRING, starting at character number START (default
  894. is 0). (autoload SYMBOL FILE)
  895. Tell the evaluator that the function value of SYMBOL will be initialised
  896. when the FILE is loaded. (set-variable)
  897. Prompts for a variable and a value to set it to. (show-variable)
  898. Prompts for a variable and returns its value. List of arguments to next `command-prompt' function (add-command-arg [ARG])
  899. Add ARG (will prompt if not given) to the list of arguments to be given to
  900. the next command invoked by `command-prompt'. (clear-command-args)
  901. Discard any arguments to be used by `command-prompt'. (command-prompt [TITLE])
  902. Prompt for the name of a function then invoke it with the contents of
  903. `command-arg-list' as arguments. Directory to search for info files if they can't be found as-is. (info [NODE-NAME])
  904. Start the Info viewer. If NODE-NAME is given it specifies the node to
  905. show, otherwise the current node is used (or `(dir)' if this is the first
  906. time that `info' has been called). Regular expression which defines a character in a word. Regular expression which defines anything that is not in a word. Regular expression which matches a paragraph-separating piece of text. Mark which some commands use to track the previous cursor position. (forward-word [NUMBER] [POS])
  907. Move to the first character after the end of this word.
  908. NUMBER is the number of words to move, negative values mean go backwards. (backward-word [NUMBER] [POS])
  909. Basically `(forward-word -NUMBER POS)' (in-word-p [POS])
  910. Returns t if POS is inside a word. (mark-word [POS])
  911. Marks the word at POS. (next-paragraph [POS] [BUFFER])
  912. Returns the position of the start of the next paragraph. (prev-paragraph [POS] [BUFFER])
  913. Returns the start of the previous paragraph. (mark-paragraph)
  914. Set the block-marks to the current paragraph. (copy-block)
  915. If a block is marked in the current window, return the text it contains and
  916. unmark the block. (cut-block)
  917. Similar to `copy-block' except the block is cut from the buffer. (delete-block)
  918. Deletes the block marked in the current window (if one exists). (insert-block [POS])
  919. If a block is marked in the current window, copy it to position POS, then
  920. unmark the block. (upcase-area START-POS END-POS [BUFFER])
  921. Makes all alpha characters in the specified region of text upper case. (downcase-area START-POS END-POS [BUFFER])
  922. Makes all alpha characters in the specified region of text lower case. (upcase-block)
  923. Makes all characters in the currently marked block upper case. (downcase-block)
  924. Makes all characters in the currently marked block lower case. (upcase-word)
  925. Makes the word under the cursor upper case. (downcase-word)
  926. Makes the word under the cursor lower case. (mark-region)
  927. Sets the block-marks to the are between the cursor position and the auto-mark (abort-recursive-edit [VALUE])
  928. Exits the innermost recursive edit with a value of VALUE. (top-level)
  929. Exit all recursive-edits. (disassemble-fun FUN [STREAM])
  930. Disassembles the lisp-code form which is the function value of FUN. If
  931. STREAM is given prints to that stream. When t any references to variables which are marked as being constant (ie,
  932. by `defconst' or `set-constant-variable') are evaluated at compile time. When t all doc-strings are appended to the doc file and replaced with
  933. their position in that file. (compile-file FILE-NAME)
  934. Compiles the file of jade-lisp code FILE-NAME into a new file called
  935. `(concat FILE-NAME ?c)' (ie, `foo.jl' => `foo.jlc'). (compile-directory DIRECTORY-NAME [FORCE-P])
  936. Compiles all jade-lisp files in the directory DIRECTORY-NAME whose object
  937. files are either older than their source file or don't exist. If FORCE-P
  938. is non-nil every lisp file is recompiled. (compile-lisp-lib [FORCE-P])
  939. Recompile all out of date files in the lisp library directory. If FORCE-P
  940. is non-nil it's as though all files were out of date.
  941. This makes sure that all doc strings are written to their special file. List of (ERROR-POS-MARK . ERROR-DESC-LINE) Default command which `(compile)' executes, the value of the last
  942. command executed by `(compile)'. Buffer-local symbol which contains the command to compile this buffer. If
  943. nil or unbound use `compile-default-cmd'. (start-compile-command SHELL-COMMAND ERROR-TYPE-STR)
  944. Executes SHELL-COMMAND asynchronously in the directory containing the file
  945. being edited in the current buffer. Output from the process is sent to the
  946. `*compilation*' buffer. (next-error)
  947. Moves the cursor to the file and line of the next error displayed in the
  948. `*compilation*' buffer. (grep [ARGS-STRING])
  949. Runs the `grep' program with ARGS-STRING (or the result of a prompt) and
  950. sends its output to the `*compilation*' buffer. The `grep' process may still
  951. be executing when this function returns. Regular-expression which `grep-buffer' scans for (grep-buffer [REGEXP])
  952. Scans the current buffer for all matches of REGEXP (or the contents of
  953. variable `grep-buffer-regexp'). All hits are displayed in the `*compilation*'
  954. buffer in a form that `goto-next-error' understands. Size of indentation for c-mode When t cursor is automatically indented when <return> is pressed in
  955. c-mode. (c-mode)
  956. Simple mode for editing C source code. (c-indent-pos [LINE-POS])
  957. *Attempts* to guess the correct indentation for this line. Returns the
  958. position for the first non-space in the line. (c-indent-pos-empty [LINE-POS])
  959. Returns the position for the first non-space in the line. Bases its guess
  960. upon the assumption that the line is empty.
  961. All positions depend on the indentation of the previous line(s). When t files are auto-save'd regularly. The number of seconds between each auto-save. When non-nil backups of files are made when they are saved. When non-nil all file backups are made by copying the file, not by
  962. renaming it. *AMIGA ONLY*
  963. When non-nil the normal ASL file requester is used when file names are
  964. prompted for. List of buffers in most-recently-used order. Each window has it's own. Stream that `prin?' writes its output to by default Stream that `read' takes it's input from by default Holds the modification time of the file this buffer was loaded from (goto-buffer BUFFER)
  965. Switch the current buffer to BUFFER which can either be a buffer-object
  966. or a string naming an existing buffer. The selected buffer is moved to
  967. the head of the buffer list. (open-file FILE-NAME)
  968. If no buffer containing file FILE-NAME exits try to create one.
  969.   After creating a new buffer (named after the file's (not path) name)
  970. it first call the hook `read-file-hook' with arguments `(file-name buffer)'
  971. If this hook returns nil (ie, no members of the hook decided to read the
  972. file into memory) the file is read into the buffer verbatim.
  973.   Once the file is in memory, through the hook or otherwise, this function
  974. then tries to initialise the correct editing mode for the file.
  975.   `open-file' always returns the buffer holding the file, or nil if it
  976. doesn't exist. (find-file [FILE-NAME])
  977. Sets the current buffer to that containing the file FILE-NAME, if FILE-NAME
  978. is unspecified it will be prompted for. If the file is not already in memory
  979. `open-file' will be used to load it. (find-file-read-only [FILE-NAME])
  980. Similar to `find-file' except that the buffer is edited in read-only mode. (open-alternate-file FILE-NAME [BUFFER] )
  981. Kills BUFFER and returns a buffer containing FILE-NAME (through the
  982. `kill-buffer' and `open-file' functions). (find-alternate-file [FILE-NAME])
  983. If FILE-NAME is unspecified one will be prompted for. The current buffer
  984. is killed and one editing FILE-NAME is found. (write-file BUFFER [FILE-NAME] )
  985. Writes the contents of BUFFER to the file FILE-NAME, or to the one
  986. that it is associated with. (save-file [BUFFER])
  987. Saves the buffer BUFFER, or the current buffer, to the file that it is
  988. associated with, then sets the number of modifications made to this file
  989. to zero.
  990. Note: if no changes have been made to this buffer, it won't be saved. (save-file-as [FILE-NAME] [BUFFER])
  991. Saves the buffer BUFFER, or the current one, to the file FILE-NAME,
  992. resetting the name of the buffer and the file that it is associated with
  993. to reflect FILE-NAME. Also sets the modification count to zero. (insert-file [FILE-NAME] [BUFFER])
  994. Inserts the file FILE-NAME (may be prompted for) into the buffer BUFFER (or
  995. the current one) before the cursor position. (open-buffer NAME)
  996. If no buffer called NAME exists, creates one and adds it to the main
  997. buffer-list. Always returns the buffer. (kill-buffer [BUFFER])
  998. Destroys BUFFER (can be an actual buffer or name of a buffer), first
  999. checks whether or not we're allowed to with the function `check-changes'.
  1000.   If it can be deleted, all windows displaying this buffer are switched
  1001. to the buffer at the head of the buffer-list, and BUFFER is removed
  1002. from the buffer-list (if it was in it). (rotate-buffers-forward)
  1003. Moves the buffer at the head of the buffer-list to be last in the list, the
  1004. new head of the buffer-list is displayed in the current window. (check-changes [BUFFER])
  1005. Returns t if it is ok to kill BUFFER, or the current buffer. If unsaved
  1006. changes have been made to it the user is asked whether (s)he minds losing
  1007. them. (goto-mark MARK)
  1008. Switches (if necessary) to the buffer containing MARK at the position
  1009. of the mark. If the file containing MARK is not in memory then we
  1010. attempt to load it with `open-file'. (set-auto-mark)
  1011. Sets the mark `auto-mark' to the current position (buffer & cursor-pos). (swap-cursor-and-auto-mark)
  1012. Sets the `auto-mark' to the current position and then sets the current
  1013. position (buffer and cursor-pos) to the old value of `auto-mark'. (split-line-indent)
  1014. Inserts a newline at the cursor position and then indents the new line
  1015. created to the indentation of the one above it. (make-auto-save-name FILE-NAME)
  1016. Returns a string naming the file used to hold the auto-save'd file for
  1017. file FILE-NAME. (auto-save-function BUFFER)
  1018. Automatically called when BUFFER is due to be automatically saved.
  1019. This function calls the hook `auto-save-hook', if this returns nil it then
  1020. saves it to the file specified by `make-auto-save-name' appiled to the
  1021. name of the file stored in BUFFER. (delete-auto-save-file [BUFFER])
  1022. Deletes the file used to store the auto-save'd copy of the file stored in
  1023. BUFFER, if such a file exists. (auto-save-file-newer-p FILE-NAME)
  1024. Returns t if there exists an automatically saved copy of file FILE-NAME
  1025. which is newer than FILE-NAME. (recover-file [BUFFER])
  1026. Loads the auto-saved copy of the file stored in BUFFER into BUFFER
  1027. overwriting its current contents (if any changes are to be lost the user
  1028. will have to agree to this). (revert-buffer [BUFFER])
  1029. Restores the contents of BUFFER (or current buffer) to the contents of the
  1030. file it was loaded from. (switch-to-buffer)
  1031. Prompt for the name of a buffer and display it in the current window. (goto-line)
  1032. Prompt for a line number and move the cursor to it. (save-some-buffers)
  1033. Asks whether or not to save any modified buffers, returns t if no modified
  1034. buffers are left. (save-and-quit)
  1035. Calls `save-some-buffers' and quits (after asking whether it's ok to lose any
  1036. unsaved buffers). (ask-yes-or-no QUESTION)
  1037. Prompts the user for a yes or no answer to QUESTION, returns t for yes. (ask-y-or-n QUESTION)
  1038. Prompts the user for a single keypress response, either `y' or `n' to the
  1039. string QUESTION, returns t for `y'.